#include "widget.h"
#include "ui_widget.h"
#include <QDebug>

#include <QVector>
#include <QList>
#include <QMap>
#include <QHash>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 1.QVector
    QVector<int> v1 = {11, 22, 33, 44, 55};

    // 遍历
//    for (int i = 0; i <v1.size(); i++)
//    {
//        qDebug() << v1[i] << v1.at(i);
//    }

//    // QVector<int>::iterator it;
//    for (auto it = v1.begin(); it != v1.end(); it++)
//    {
//        qDebug() << *it;
//    }

//    for(auto item : v1)
//    {
//        qDebug() << item;
//    }

    // 常用方法
//    v1.append(66);   // {11, 22, 33, 44, 55, 66}
//    v1.push_back(77); // {11, 22, 33, 44, 55, 66, 77}
//    v1.prepend(6);  // {6, 11, 22, 33, 44, 55, 66, 77}

//    v1.insert(3, 18); // {6, 11, 22, 18, 33, 44, 55, 66, 77}

//    // 参数1：从哪个索引号开始移除
//    // 参数2：移除几个单元（可选）
//    v1.remove(2);  // {6, 11, 18, 33, 44, 55, 66, 77}
//    v1.remove(3, 2); // {6, 11, 18, 55, 66, 77}

//    v1.pop_back();   // {6, 11, 18, 55, 66}
//    v1.pop_front();  // {11, 18, 55, 66}
//    v1.clear();
//    v1.replace(1, 20);  // {11, 20, 55, 66}

//    qDebug() << v1;

//    v1.clear();
//    qDebug() << v1.isEmpty();

//    qDebug() << v1.indexOf(11) << v1.lastIndexOf(11);
//    qDebug() << v1.back() << v1.front() << v1;

    // QList
    QList<QString> list = {"和平精英", "王者荣耀", "黑神话悟空"};
//    for (int i = 0; i < list.size(); i++)
//    {
//        qDebug() << list[i] << list.at(i);
//    }

//    QList<QString>::iterator it;
//    for (it = list.begin(); it != list.end(); it++)
//    {
//        qDebug() << *it;
//    }

//    for(auto item : list)
//    {
//        qDebug() << item;
//    }

//    QString filePath = "/home/etc/aaa.png  ";
//    qDebug() << this->isPic(filePath);

    // QStringList
//    QStringList l = {"宝马", "奔驰", "奥迪", "劳斯莱斯"};

//    // join()  使用一个字符将list中的所有单元串联为一个长字符串
//    qDebug() << l.join("-");

//    QString str = "宝马-奔驰-奥迪-劳斯莱斯";
//    // split()  使用一个字符串将一个长字符串切割为一个QStringList，每一段保存在一个单元中
//    QStringList result = str.split("-");
//    qDebug() << result;

    // QMap
//    QMap<int, QString> m = {
//        {1, "小明"},
//        {2, "小红"},
//        {3, "小章"}
//    };
//    QMap<int, QString>::iterator it;
//    for (auto it = m.begin(); it != m.end(); it++)
//    {
//        qDebug() << it.key() << it.value();
//    }

//    // 只能得到value，无法得到key，所以QT中不推荐使用C++11新特性来遍历map
//    for(auto item : m)
//    {
//        qDebug() << item;
//    }

    QHash<QString, QVariant> h;
    h.insert("id", 10001);
    h["name"] = "张三丰";
    h["age"] = 108;

    qDebug() << h["age"].toInt();

}

bool Widget::isPic(QString filePath)
{
    // 定义允许使用的图片格式
    QVector<QString> picSuffix = {"jpg", "png", "gif"};
    filePath = filePath.trimmed();
    QString suffix = filePath.mid(filePath.lastIndexOf(".") + 1);

    // 检测获取到的图片格式是否存在于允许的格式之中
    return picSuffix.contains(suffix);

//    if(picSuffix.indexOf(suffix) == -1)
//    {
//        return false;
//    }
//    return true;
}

Widget::~Widget()
{
    delete ui;
}
